$(function() {
	var js_ld_id = 0;

// Индикация AJAX процесса
	$(document).ajaxStart(function() { $('#Ajax_ProgressId').show()	} )
		.ajaxStop(function()  { 
			$('#Ajax_ProgressId').hide(); 
		} );
	$('#Ajax_ProgressId').hide();
		
//
// Считываем данные о пользователе
//
	app.customer.full_name = $('body #full_name').text();
	app.customer.cat_id = $('body #cat_id').text();
	
	var priv_box = $("#user_priv_data");
	app.customer.priv = $.parseJSON( priv_box.html() );
	priv_box.remove();

// Устанавливаем разрешения на пункты меню
	app.setMenuPerm = function() {

//
//	Документы
//
		var p = app.customer.priv;
		if( !p.incoming.rwd ) $('li#menu_item_incoming').addClass('ui-state-disabled');
		else $('li#menu_item_incoming').removeClass('ui-state-disabled');
		if( !p.outgoing.rwd ) $('li#menu_item_outgoing').addClass('ui-state-disabled');
		else $('li#menu_item_outgoing').removeClass('ui-state-disabled');
		if( !p.outinvoice.rwd ) $('li#menu_item_outinvoice').addClass('ui-state-disabled');
		else $('li#menu_item_outinvoice').removeClass('ui-state-disabled');
		if( !p.parcel.rwd ) $('li#menu_item_parcel').addClass('ui-state-disabled');
		else $('li#menu_item_parcel').removeClass('ui-state-disabled');
		if( !p.cars.rwd ) $('li#menu_item_cars').addClass('ui-state-disabled');
		else $('li#menu_item_cars').removeClass('ui-state-disabled');
		// работы и платежи
		if( !p.jobs.rwd && !p.outpays.rwd && !p.incpays.rwd) $('li#menu_item_jobandpay').addClass('ui-state-disabled');
		else $('li#menu_item_jobandpay').removeClass('ui-state-disabled');
			if( !p.jobs.rwd ) $('li#menu_item_jobs').addClass('ui-state-disabled');
			else $('li#menu_item_jobs').removeClass('ui-state-disabled');
			if( !p.outpays.rwd ) $('li#menu_item_outpays').addClass('ui-state-disabled');
			else $('li#menu_item_outpays').removeClass('ui-state-disabled');
			if( !p.incpays.rwd ) $('li#menu_item_incpays').addClass('ui-state-disabled');
			else $('li#menu_item_incpays').removeClass('ui-state-disabled');
		// Производство
		if( !p.stock.rwd && !p.products.rwd && !p.prodstock.rwd) $('li#menu_item_manufac').addClass('ui-state-disabled');
		else $('li#menu_item_manufac').removeClass('ui-state-disabled');
			if( !p.stock.rwd ) $('li#menu_item_stock').addClass('ui-state-disabled');
			else $('li#menu_item_stock').removeClass('ui-state-disabled');
			if( !p.stock.rwd ) $('li#menu_item_crossstock').addClass('ui-state-disabled');
			else $('li#menu_item_crossstock').removeClass('ui-state-disabled');
			if( !p.products.rwd ) $('li#menu_item_products').addClass('ui-state-disabled');
			else $('li#menu_item_products').removeClass('ui-state-disabled');
			if( !p.prodstock.rwd ) $('li#menu_item_prodstock').addClass('ui-state-disabled');
			else $('li#menu_item_prodstock').removeClass('ui-state-disabled');
//
// Справочники
//
		if( !p.builds.rwd ) $('li#menu_item_builds').addClass('ui-state-disabled');
		else $('li#menu_item_builds').removeClass('ui-state-disabled');
		if( !p.contra.rwd ) $('li#menu_item_contra').addClass('ui-state-disabled');
		else $('li#menu_item_contra').removeClass('ui-state-disabled');
		if( !p.clients.rwd ) $('li#menu_item_clients').addClass('ui-state-disabled');
		else $('li#menu_item_clients').removeClass('ui-state-disabled');
		if( !p.jobcats.rwd ) $('li#menu_item_jobcats').addClass('ui-state-disabled');
		else $('li#menu_item_jobcats').removeClass('ui-state-disabled');
		if( !p.jobtypes.rwd || !p.baltypes.rwd || !p.inctypes.rwd || !p.outtypes.rwd ) 
			$('li#menu_item_payments').addClass('ui-state-disabled');
		else $('li#menu_item_payments').removeClass('ui-state-disabled');
		// Производство
		if( p.metrics.rwd || p.units.rwd || p.articles.rwd ) $('li#menu_item_tmc').removeClass('ui-state-disabled');
		else $('li#menu_item_tmc').addClass('ui-state-disabled');
			if( !p.metrics.rwd ) $('li#menu_item_metrics').addClass('ui-state-disabled');
			else $('li#menu_item_metrics').removeClass('ui-state-disabled');
//			if( !p.units.rwd ) $('li#menu_item_units').addClass('ui-state-disabled');
//			else $('li#menu_item_units').removeClass('ui-state-disabled');
			if( !p.units.rwd ) $('li#menu_item_unitree').addClass('ui-state-disabled');
			else $('li#menu_item_unitree').removeClass('ui-state-disabled');
			if( !p.articles.rwd ) $('li#menu_item_articles').addClass('ui-state-disabled');
			else $('li#menu_item_articles').removeClass('ui-state-disabled');
//
// Отчеты
//
		if( !p.articles.rwd ) $('li#menu_item_manplan').addClass('ui-state-disabled');
		else $('li#menu_item_manplan').removeClass('ui-state-disabled');
		if( !p.incoming.rwd ||  !p.outinvoice.rwd ) $('li#menu_item_payrep01').addClass('ui-state-disabled');
		else $('li#menu_item_payrep01').removeClass('ui-state-disabled');
	}
	
	app.setMenuPerm();
	
// Обнуляем ф-цию контента
	app.Content = null;
	
//
// Создаем главное меню
//
	function select(event, ui) {
		switch(ui.item[0].id) {
			case 'menu_item_incoming': // Расходы по контрагентам
				incoming( ui.item[0].textContent );	break;
				
			case 'menu_item_outgoing': // Приход по заказчикам
				outgoing( ui.item[0].textContent );	break;
				
			case 'menu_item_outinvoice': // Входящие платежи
				outinvoice( ui.item[0].textContent );	break;
				
			case 'menu_item_parcel': // Землеотведение
				parcel( ui.item[0].textContent );	break;
				
			case 'menu_item_cars': // Учет автотранспорта
				cars( ui.item[0].textContent );	break;
				
			case 'menu_item_jobs': // Работы
				jobs( ui.item[0].textContent );	break;
				
			case 'menu_item_outpays': // Расходы
				outpays( ui.item[0].textContent );	break;
				
			case 'menu_item_incpays': // Приход
				incpays( ui.item[0].textContent );	break;
				
			case 'menu_item_stock': // Склад материалов и комплектующих
				stock( ui.item[0].textContent );	break;
				
			case 'menu_item_crossstock': // Склад. Таблица списаний
				crossstock( ui.item[0].textContent );	break;
				
			case 'menu_item_products': // Изделия. Выписка со склада
				products( ui.item[0].textContent );	break;
				
			case 'menu_item_prodstock': // Склад готовой продукции
				prodstock( ui.item[0].textContent );	break;
				
			case 'menu_item_builds': // Объекты
				builds(); break;
				
			case 'menu_item_contra': // Контрагенты
				contra(); break;
				
			case 'menu_item_clients': // Заказчики
				clients(); break;
				
			case 'menu_item_jobcats': // Справочник категорий работ и платежей
				jobcats(); break;
				
			case 'menu_item_payments': // Справочник видов работ и платежей
				payments(); break;
				
			case 'menu_item_metrics': // Единицы измерения
				metrics(); break;
				
//			case 'menu_item_units': // Комплектующие, материалы
//				units(); break;
				
			case 'menu_item_unitree': // Материалы, комплектующие
				unitree(); break;
				
			case 'menu_item_articles': // Изделия, типовые спецификации
				articles(); break;
				
			case 'menu_item_manplan': // Планирование затрат материалов
				manplan(); break;
				
			case 'menu_item_payrep01': // Отчет по доходам и расходам
				payrep01(); break;
				
			case 'm_4_1':
				logout();
				break;
			case 'm_4_2':
				relogin();;
				break;
//			$(this).menubar('destroy');
		}
	}
	$(".main_menu").menubar({
		autoExpand: false,
		menuIcon: true,
		buttons: false,
		select: select
	});

	$('ul#main_menu').css({
		'background-image':$('ul#main_menu li:first a:first').css('background-image'), 'top':'8px'
	});
	$('ul.main_menu, ul.main_menu ul').shadow();
	
// Кнопка закрытия панели контента
	$(".content_panel_title .close_content")
		.button( { text: false, icons: { primary: "ui-icon-closethick" } } )
		.click(function(){ 
			app.Content.Close(); 
			app.Content = null;
		});

// Переключатель задач для панели контента		
	function SwitchContent( a, title ) {
		if( app.Content != null ) {
			app.Content.Close();
		}
		app.Content = a;
		a.Open( 'ContentPanel' );
		$('.content_panel_title').find('span').text(title);
	}

// Генерит имя и создает элемент для загрузки JS
	function genJSid() {
		var jsid = 'js_ld_'+(++js_ld_id);
		$('body').append( '<div id="'+jsid+'"></div>');
		return jsid;
	}
	
// Обработчики для главного меню
	function logout() { document.location.href = 'index.php'; }
	function relogin() { $('#login_dialog').load('index.php'); }

// Справочники
	function builds() {
		if( typeof app.ShowBuildsDictionary == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'builds/jsload'}, function() { 
				jsid.remove(); app.ShowBuildsDictionary('BuildsDic'); } );
		} else app.ShowBuildsDictionary('BuildsDic');
	}
	
	function contra() {
		if( typeof app.ShowContraDictionary == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'contra/jsload'}, function() { 
				jsid.remove(); app.ShowContraDictionary('ContraDic'); } );
		} else app.ShowContraDictionary('ContraDic');
	}
	
	function clients() {
		if( typeof app.ShowClientsDictionary == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'clients/jsload'}, function() { 
				jsid.remove(); app.ShowClientsDictionary('ClientsDic'); } );
		} else app.ShowClientsDictionary('ClientsDic');
	}
	
	function jobcats() {
		if( typeof app.ShowJobCatsDic == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'jobcats/jsload'}, function() { 
				jsid.remove(); app.ShowJobCatsDic('JobcatsDic'); } );
		} else app.ShowJobCatsDic('JobcatsDic');
	}
	
	function payments() {
		if( typeof app.ShowJobDictionary == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'payments/jsload'}, function() { 
				jsid.remove(); app.ShowJobDictionary('PaymentsDic'); } );
		} else app.ShowJobDictionary('PaymentsDic');
	}
	
	function metrics() {
		if( typeof app.ShowMetricsDictionary == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'metrics/jsload'}, function() { 
				jsid.remove(); app.ShowMetricsDictionary('MetricsDic'); } );
		}
		else app.ShowMetricsDictionary('MetricsDic');
	}
/*	
	function units() {
		if( typeof app.ShowUnitsDictionary == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'units/jsload'}, function() { 
				jsid.remove(); app.ShowUnitsDictionary('UnitsDic'); } );
		}
		else app.ShowUnitsDictionary('UnitsDic');
	}
*/	
	function unitree() {
		if( typeof app.ShowUniTreeDictionary == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'unitree/jsload'}, function() { 
				jsid.remove(); app.ShowUniTreeDictionary('UnitsDic'); } );
		}
		else app.ShowUniTreeDictionary('UnitsDic');
	}
	
	function articles() {
		if( typeof app.ShowArticlesDictionary == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'articles/jsload'}, function() { 
				jsid.remove(); app.ShowArticlesDictionary('ArticlesDic'); } );
		}
		else app.ShowArticlesDictionary('ArticlesDic');
	}
	

// Документы	
	function products( title ) {
		if( typeof app.Products == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'products/jsload'}, function() { 
				jsid.remove(); SwitchContent( app.Products, title ); } );
		} else SwitchContent( app.Products, title );
	}
	
	function prodstock( title ) {
		if( typeof app.ProdStock == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'prodstock/jsload'}, function() { 
				jsid.remove(); SwitchContent( app.ProdStock, title ); } );
		} else SwitchContent( app.ProdStock, title );
	}
	
	function stock( title ) {
		if( typeof app.Stock == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'stock/jsload', sc:'stock'}, function() { 
				jsid.remove(); SwitchContent( app.Stock, title ); } );
		} else SwitchContent( app.Stock, title );
	}
	
	function crossstock( title ) {
		if( typeof app.CrossStock == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'stock/jsload', sc:'crossstock'}, function() { 
				jsid.remove(); SwitchContent( app.CrossStock, title ); } );
		} else SwitchContent( app.CrossStock, title );
	}
	
	function parcel( title ) {
		if( typeof app.Parcel == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'parcel/jsload'}, function() { 
				jsid.remove(); SwitchContent( app.Parcel, title ); } );
		} else SwitchContent( app.Parcel, title );
	}
	
	function cars( title ) {
		if( typeof app.Cars == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'cars/jsload'}, function() { 
				jsid.remove(); SwitchContent( app.Cars, title ); } );
		} else SwitchContent( app.Cars, title );
	}
	
	function jobs( title ) {
		if( typeof app.Jobs == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'jobs/jsload'}, function() { 
				jsid.remove(); SwitchContent( app.Jobs, title ); } );
		} else SwitchContent( app.Jobs, title );
	}
	
	function outpays( title ) {
		if( typeof app.Outpays == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'outpays/jsload'}, function() { 
				jsid.remove(); SwitchContent( app.Outpays, title ); } );
		} else SwitchContent( app.Outpays, title );
	}
	
	function incpays( title ) {
		if( typeof app.Incpays == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'incpays/jsload'}, function() { 
				jsid.remove(); SwitchContent( app.Incpays, title ); } );
		} else SwitchContent( app.Incpays, title );
	}
	
	function incoming( title ) {
		if( typeof app.Incoming == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'incoming/jsload'}, function() { 
				jsid.remove(); SwitchContent( app.Incoming, title ); } );
		} else SwitchContent( app.Incoming, title );
	}
	
	function outgoing( title ) {
		if( typeof app.Outgoing == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'outgoing/jsload'}, function() { 
				jsid.remove(); SwitchContent( app.Outgoing, title ); } );
		} else SwitchContent( app.Outgoing, title );
	}

	function outinvoice( title ) {
		if( typeof app.Outinvoice == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'outinvoice/jsload'}, function() { 
				jsid.remove(); SwitchContent( app.Outinvoice, title ); } );
		} else SwitchContent( app.Outinvoice, title );
	}

// Отчеты
	function manplan() {
		if( typeof app.ShowManPlan == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'manplan/jsload'}, function() { 
				jsid.remove(); app.ShowManPlan('ManPlanDlg'); } );
		}
		else app.ShowManPlan('ManPlanDlg');
	}
	
	function payrep01() {
		if( typeof app.PayRep01 == 'undefined' ) {
			var jsid = $('#'+genJSid());
			jsid.load('index.php', {q:'payrep01/jsload'}, function() { 
				jsid.remove(); app.PayRep01(); } );
		}
		else app.PayRep01();
	}

});